package com.qing.library_manager.dao.readers;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.qing.library_manager.domain.dto.ReadersDTO;
import com.qing.library_manager.domain.entity.Readers;
import com.qing.library_manager.domain.query.ReadersQuery;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface readersMapper extends BaseMapper<Readers> {

    /**
     * 新增图书
     * @param readersDTO 书籍传输对象
     * @return ResponseResult
     */
    int increaseReaders(ReadersDTO readersDTO);

    /**
     * 更新图书信息
     * @param readersDTO 书籍传输对象
     * @return ResponseResult
     */
    int updateReadersByName(ReadersDTO readersDTO);

    /**
     * 删除图书
     * @param readersShowId
     * @return
     */
    int deleteReadersByName(@Param("readersShowId") int readersShowId);

    /**
     * 分页查询查询图书
     * @return
     */
    IPage<ReadersDTO> queryAllReadersInit(@Param("page") Page<ReadersDTO> page, @Param("readersQuery") ReadersQuery readersQuery);

    /**
     * 查找读者的ID
     * @return
     */
    ReadersDTO queryReadersById(@Param("readersShowId") int readersShowId);

    /**
     * 用于查询id，生成借阅信息id
     * @param readersName
     * @return
     */
    String queryReadersIdCreate(@Param("readersName") String readersName);

    /**
     * 数量查询
     * @param readersName
     * @return
     */
    int queryReadersNum(@Param("readersName") String readersName);

    /**
     * 获取全部数据
     * @return
     */
    List<ReadersDTO> queryAllReaders();

}
